Software testing is used to improve the quality of software. The basic technique is by defining a set of inputs to the program, called the test case. Each input in the test case defines concrete variable values. The test case is executed by the software to identify defects in the software. Multiple test cases may be defined to create a test set. For example, test cases may have mutations of variable values from other test cases in the test set. The coverage level of a test set is the number of different instructions executed in the software having a variety of inputs. In general, the greater the coverage level, the more likely that any and most defects are found in the software. In other words, a high-coverage test set includes a variety of inputs that causes a large proportion of the software under test to be executed.